www.gusucode.com > 6KBBS ASP版 V7.1 > 6KBBS ASP版 V7.1\code\bbs\Editor\Ubb\UbbEditor.js

    var Quote = 0;
var Bold  = 0;
var Italic = 0;
var Underline = 0;
var Code = 0;
var editObj;
var fontbegin;
var fontend;
var ToolBar = Array(
						Array('Ubb_fly', 'fly.gif','飞行字'),
						Array('Ubb_move', 'move.gif', '移动字'),
						Array('Ubb_glow', 'glow.gif', '发光字'),
						Array('Ubb_shadow', 'shadow.gif', '阴影字'),
						Array('Ubb_bold', 'bold.gif', '粗体字'),
						Array('Ubb_italicize', 'italicize.gif', '斜体字'),
						Array('Ubb_underline', 'underline.gif', '下划线'),
						Array('Ubb_sup', 'sup.gif', '上标'),
						Array('Ubb_sub', 'sub.gif', '下标'),
						Array('Ubb_code', 'code.gif', '插入代码'),
						Array('Ubb_fontsize', 'fontsize.gif', '字体大小'),
						Array('Ubb_fontcolor', 'fontcolor.gif', '字体颜色'),
						Array('Ubb_center', 'center.gif', '居中'),
						Array('Ubb_image', 'image.gif', '图片'),
						Array('Ubb_Shockwave', 'Shockwave.gif', 'Shockwave文件'),
						Array('Ubb_rm', 'rm.gif', 'realplayer文件'),
						Array('Ubb_mp', 'mp.gif',  'media player文件'),
						Array('Ubb_url', 'url.gif', '超链接'),
						Array('Ubb_email', 'email.gif', 'Email链接'),
						Array('Ubb_csound', 'csound.gif', '背景音乐'),
						Array('Ubb_ra', 'ra.gif', 'real音频文件'),
						Array('Ubb_6kbbs', '6kbbs.gif', '特殊帖子'),
						Array('Ubb_face', 'face.gif', '表情')
				  );

var FontColor = Array(
						"#FF0000", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF", "#FF00FF", "#FFFFFF", "#F5F5F5", "#DCDCDC", "#FFFAFA",
						"#D3D3D3", "#C0C0C0", "#A9A9A9", "#808080", "#696969", "#000000", "#2F4F4F", "#708090", "#778899", "#4682B4",
						"#4169E1", "#6495ED", "#B0C4DE", "#7B68EE", "#6A5ACD", "#483D8B", "#191970", "#000080", "#00008B", "#0000CD",
						"#1E90FF", "#00BFFF", "#87CEFA", "#87CEEB", "#ADD8E6", "#B0E0E6", "#F0FFFF", "#E0FFFF", "#AFEEEE", "#00CED1",
						"#5F9EA0", "#48D1CC", "#00FFFF", "#40E0D0", "#20B2AA", "#008B8B", "#008080", "#7FFFD4", "#66CDAA", "#8FBC8F",
						"#3CB371", "#2E8B57", "#006400", "#008000", "#228B22", "#32CD32", "#00FF00", "#7FFF00", "#7CFC00", "#ADFF2F",
						"#98FB98", "#90EE90", "#00FF7F", "#00FA9A", "#556B2F", "#6B8E23", "#808000", "#BDB76B", "#B8860B", "#DAA520",
						"#FFD700", "#F0E68C", "#EEE8AA", "#FFEBCD", "#FFE4B5", "#F5DEB3", "#FFDEAD", "#DEB887", "#D2B48C", "#BC8F8F",
						"#A0522D", "#8B4513", "#D2691E", "#CD853F", "#F4A460", "#8B0000", "#800000", "#A52A2A", "#B22222", "#CD5C5C",
						"#F08080", "#FA8072", "#E9967A", "#FFA07A", "#FF7F50", "#FF6347", "#FF8C00", "#FFA500", "#FF4500", "#DC143C",
						"#FF0000", "#FF1493", "#FF00FF", "#FF69B4", "#FFB6C1", "#FFC0CB", "#DB7093", "#C71585", "#800080", "#8B008B",
						"#9370DB", "#8A2BE2", "#4B0082", "#9400D3", "#9932CC", "#BA55D3", "#DA70D6", "#EE82EE", "#DDA0DD", "#D8BFD8",
						"#E6E6FA", "#F8F8FF", "#F0F8FF", "#F5FFFA", "#F0FFF0", "#FAFAD2", "#FFFACD", "#FFF8DC", "#FFFFE0", "#FFFFF0",
						"#FFFAF0", "#FAF0E6", "#FDF5E6", "#FAEBD7", "#FFE4C4", "#FFDAB9", "#FFEFD5", "#FFF5EE", "#FFF0F5", "#FFE4E1"
					);

function ClearHtml()
{
	document.getElementById('MenuName').innerHTML ='';
	document.getElementById('MenuData').innerHTML ='';
}
function GetObjTop(id)
{
	var obj = document.getElementById(id);
	var top = obj.offsetTop;
	while (obj=obj.offsetParent) {
		top += obj.offsetTop;
	}
	return top;
}


function GetObjLeft(id)
{
	var obj = document.getElementById(id);
	var left = obj.offsetLeft;
	while (obj=obj.offsetParent) {
		left += obj.offsetLeft;
	}
	return left;
}

function GetMenuStyle(top, left)
{
	var str = 'padding:5px;width:150px;position:absolute;top:'+top+'px;left:'+left+'px;background-color:#FFFFFF;border:solid 1px #cccccc;z-index:1;';
	return str;
}


function DrawMenu(Obj,content)
{
	var oldHtml=document.getElementById('MenuName').innerHTML;
	if (oldHtml==Obj)
	{
		ClearHtml();
	}
	else
	{
		var top = GetObjTop(Obj) + 32;
		var left = GetObjLeft(Obj) + 1;
		var str = '';
		str += '<div style="'+GetMenuStyle(top, left)+'">';
		str += content;
		str += '</div>';
		document.getElementById('MenuName').innerHTML = Obj;
		document.getElementById('MenuData').innerHTML = str;
	}
}

function ShowFontSize()
{
	var str='';
	for(var i=1;i<6;i++)
		str+='<a onclick="javascript:ubbsize('+i+')"><font size='+i+'>'+i+'</font></a><br>';
	
	str="<p style='line-height:150%;margin:5px;cursor:pointer;;'>"+str+"</p>";
	DrawMenu("Ubb_fontsize",str);
}
function ShowFontColor()
{
	var str='';
	var str = '';
	str += '<table cellpadding="0" cellspacing="2" border="0">';
	for (i = 0; i < FontColor.length; i++) {
		if (i == 0 || (i >= 10 && i%10 == 0)) {
			str += '<tr>';
		}
		str += '<td style="width:12px;height:12px;border:1px solid #AAAAAA;font-size:10px;cursor:pointer;background-color:' +
		FontColor[i] + ';" onmouseover="javascript:this.style.borderColor=\'#000000\';" '+
		'onmouseout="javascript:this.style.borderColor=\'#AAAAAA\';" ' +
		'onclick="javascript:COLOR(\''+FontColor[i]+'\');">&nbsp;</td>';
		if (i >= 9 && i%(i-1) == 0) {
			str += '</tr>';
		}
	}
	str += '</table>';
	DrawMenu("Ubb_fontcolor",str);
}
function Show6kbbs()
{
	var str='';
		str+="<p style='line-height:150%;margin:5px;cursor:pointer;;'><a onclick='javascript:grade()'>等级可见</a><br><a onclick='javascript:reply()'>回复可见</a><br><a onclick='javascript:name()'>指定读者</a><br><a onclick='javascript:smark()'>积分可见</a><br><a onclick='javascript:showdate()'>日期可见</a><br><a onclick='javascript:mustlogin()'>登陆可见</a></p>";
	DrawMenu("Ubb_6kbbs",str);
}
function ShowFace()
{
	var str='';
		for(var i=1;i<=15;i=i+1)
			str+='<A href=javascript:AddUbbCode(\'\',\'[em'+i+']\')><img border=0 src=images/emote/em'+i+'.gif></A>&nbsp;';
	DrawMenu("Ubb_face",str);
}
function UbbEditor(ObjName,Cols,Rows,DefaultValue,ImagePath)
{
	var iconStr;
	editObj=ObjName;
	this.cols=Cols;
	this.imagepath=
	this.rows=Rows;
	this.defaultValue=DefaultValue;
	this.imagePath=ImagePath;
	this.showeditor=function ()
	{
		iconStr="";
			for (var i = 0; i < ToolBar.length; i++) {
			iconStr += '<img id="'+ ToolBar[i][0] +'" src="' + this.imagePath + ToolBar[i][1] + '" alt="' + ToolBar[i][2] + '" align="absmiddle" onclick=RunMethod("'+ToolBar[i][0]+'") style="cursor:pointer;"> ';
			}

			iconStr='<div id="ubbeditordiv" style="display:none;">'+iconStr+'</div>';
		document.write(iconStr);
		//var editorstr="<textarea rows="+this.rows+" name="+editObj+"  id="+editObj+" cols="+this.cols+">"+this.defaultValue+"</textarea>";
		document.write('<span id="MenuName" style="display:none;"></span><span id="MenuData"></span>');
	}

}
function RunMethod(str)
{
	switch(str)
	{
		case'Ubb_fly':
			fly();
		break;

		case'Ubb_move':
			move();
		break;

		case'Ubb_glow':
			light();
		break;

		case'Ubb_shadow':
			ying();
		break;

		case'Ubb_bold':
			Cbold();
		break;

		case'Ubb_italicize':
			Citalic();
		break;

		case'Ubb_underline':
			Cunder();
		break;
		
		case'Ubb_sup':
			AddUbbCode('[sup]','[/sup]');
		break;

		case'Ubb_sub':
			AddUbbCode('[sub]','[/sub]');
		break;

		case'Ubb_code':
			AddUbbCode('[code]','[/code]');
		break;

		case'Ubb_fontsize':
			ShowFontSize();
		break;

		case'Ubb_fontcolor':
			ShowFontColor();
		break;

		case'Ubb_6kbbs':
			Show6kbbs();
		break;

		case'Ubb_face':
			ShowFace();
		break;

		case'Ubb_center':
			center();
		break;

		case'Ubb_image':
			image();
		break;

		case'Ubb_Shockwave':
			Cdir();
		break;

		case'Ubb_rm':
			Crm();
		break;

		case'Ubb_mp':
			Cwmv();
		break;

		case'Ubb_url':
			Curl();
		break;

		case'Ubb_email':
			Cemail();
		break;

		case'Ubb_csound':
			Csound();
		break;

		case'Ubb_ra':
			Cra();
		break;

		default: 
		break;

	}
}
function WordAdd(){
	if ((document.selection)&&(document.selection.type == "Text")) {
		var range = document.selection.createRange();
		var ch_text=range.text;
		range.text = fontbegin + ch_text + fontend;
	} 
	else {
		document.getElementById(editObj).value=fontbegin+document.getElementById(editObj).value+fontend;
		document.getElementById(editObj).focus();
	}
}
function AddText(text) {
	if (document.getElementById(editObj).createTextRange && document.getElementById(editObj).caretPos) {      
		var caretPos = document.getElementById(editObj).caretPos;      
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
		text + ' ' : text;
	}
	else document.getElementById(editObj).value += text;
	document.getElementById(editObj).focus(caretPos);
}

helpstat = false;
stprompt = true;
basic = false;
function thelp(swtch){
	if (swtch == 1){
		basic = false;
		stprompt = false;
		helpstat = true;
	} else if (swtch == 0) {
		helpstat = false;
		stprompt = false;
		basic = true;
	} else if (swtch == 2) {
		helpstat = false;
		basic = false;
		stprompt = true;
	}
}
function Crm() {
	if (helpstat) {
               alert("realplay\n播放realplay文件.\n用法: [rm=宽度, 高度]文件地址[/rm]");
	} else if (basic) {
		AddTxt="[rm=500,350][/rm]";
		AddText(AddTxt);
	} else { 
		txt2=prompt("视频的宽度,高度","500,350"); 
		if (txt2!=null) {
			txt=prompt("视频文件的地址","请输入");
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="[rm=500,350]"+txt;
					AddText(AddTxt);
					AddTxt="[/rm]";
					AddText(AddTxt);
				} else {
					AddTxt="[rm="+txt2+"]"+txt;
					AddText(AddTxt);
					AddTxt="[/rm]";
					AddText(AddTxt);
				}         
			} 
		}
	}
}

function Cwmv() {
	if (helpstat) {
               alert("Media Player\n播放Media Player文件.\n用法: [mp=宽度, 高度]文件地址[/mp]");
	} else if (basic) {
		AddTxt="[mp=500,350][/mp]";
		AddText(AddTxt);
	} else { 
		txt2=prompt("视频的宽度,高度","500,350"); 
		if (txt2!=null) {
			txt=prompt("视频文件的地址","请输入");
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="[mp=500,350]"+txt;
					AddText(AddTxt);
					AddTxt="[/mp]";
					AddText(AddTxt);
				} else {
					AddTxt="[mp="+txt2+"]"+txt;
					AddText(AddTxt);
					AddTxt="[/mp]";
					AddText(AddTxt);
				}         
			} 
		}
	}
}
function Cdir() {
	if (helpstat) {
               alert("Shockwave\n插入Shockwave文件.\n用法: [dir=宽度, 高度]文件地址[/dir]");
	} else if (basic) {
		AddTxt="[dir=500,350][/dir]";
		AddText(AddTxt);
	} else { 
		txt2=prompt("Shockwave文件的宽度,高度","500,350"); 
		if (txt2!=null) {
			txt=prompt("Shockwave文件的地址","请输入地址");
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="[dir=500,350]"+txt;
					AddText(AddTxt);
					AddTxt="[/dir]";
					AddText(AddTxt);
				} else {
					AddTxt="[dir="+txt2+"]"+txt;
					AddText(AddTxt);
					AddTxt="[/dir]";
					AddText(AddTxt);
				}         
			} 
		}
	}
}
function COLOR(color){
		ClearHtml();
		document.getElementById(editObj).focus();
		var text=prompt("请输入要设置颜色的文字", "");
	if(text){
		document.getElementById(editObj).value += '[color=' + color + ']'+ text + '[/color]';
	}
}

function ubbsize(size){
		ClearHtml();
		document.getElementById(editObj).focus();

	var text=prompt("请输入要设置字体大小的文字", "");
	if(text){
		document.getElementById(editObj).value += '[size=' + size + ']'+ text + '[/size]';
	}
}
function image() {
var FoundErrors = '';
var enterURL   = prompt("请输入图片地址","http://");
if (!enterURL) {
FoundErrors +="\n";
}
if (FoundErrors) {
return;
}
var ToAdd = "[IMG]"+enterURL+"[/IMG]";
document.getElementById(editObj).value+=ToAdd;
document.getElementById(editObj).focus();
}
function fly() {
fontbegin="[fly]";
fontend="[/fly]";
WordAdd();
}
function move() {
fontbegin="[move]";
fontend="[/move]";
WordAdd();
}
function center() {
fontbegin="[align=center]";
fontend="[/align]";
WordAdd();
}
function light() {
fontbegin="[light]";
fontend="[/light]";
WordAdd();
}
function grade() {
	ClearHtml();
	var ToAdd = "[showtograde=1]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}
function name() {
	ClearHtml();
	var ToAdd = "[showtoname=对方昵称]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}
function reply() {
	ClearHtml();
	var ToAdd = "[showtoreply]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}
function ying() {
	fontbegin="[SHADOW=255,yellow,1]";
	fontend="[/shadow]";
	WordAdd();
}
function smark() {
	ClearHtml();
	var ToAdd = "[smark=10]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}

function Curl() {
var FoundErrors = '';
var enterURL   = prompt("请输入连接网址", "http://");
var enterTxT   = prompt("请输入连接说明", enterURL);
if (!enterURL)    {
FoundErrors += "\n" + "您必须输入网址";
}
if (!enterTxT)    {
FoundErrors += "\n" + "您必须连接说明";
}
if (FoundErrors)  {
alert("错误!"+FoundErrors);
return;
}
var ToAdd = "[URL="+enterURL+"]"+enterTxT+"[/URL]";
document.getElementById(editObj).value+=ToAdd;
document.getElementById(editObj).focus();
}

function showdate() {
	ClearHtml();
	var FoundErrors = '';
	var enterdate=prompt("请输入日期按这样格式2003-10-1,该帖将这天以后方能浏览","2007-10-1");
	if (!enterdate) {
	FoundErrors += "\n" +"请输入正确日期";
	}

	if (FoundErrors) {
	alert("错误!"+FoundErrors);
	return;
	}
	var ToAdd = "[showdate="+enterdate+"]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}

function Cemail() {
var emailAddress = prompt("请输入邮件地址","");
if (!emailAddress) { alert("请输入正确的email地址"); return; }
var ToAdd = "[email]"+emailAddress+"[/email]";
document.getElementById(editObj).value+=ToAdd;
document.getElementById(editObj).focus();
}
function Cbold() {
fontbegin="[B]";
fontend="[/B]";
WordAdd();
}
function Citalic() {
fontbegin="[I]";
fontend="[/I]";
WordAdd();
}
function Cunder() {
fontbegin="[U]";
fontend="[/U]";
WordAdd();
}

function mustlogin() {
	ClearHtml();
	var ToAdd = "[slogin]内容[/s]";
	document.getElementById(editObj).value+=ToAdd;
	document.getElementById(editObj).focus();
}

function DoTitle(addTitle){
	document.getElementById("topic").value=addTitle+document.getElementById("topic").value;
	document.getElementById("topic").focus();

}
function openwin()
{
document.forms[1].topic.value=document.forms[0].topic.value;
document.forms[1].content.value=document.forms[0].content.value;
var popupWin = window.open('post.asp?action=preview', 'showgg', 'width=500,height=400,resizable=1,scrollbars=yes,menubar=no,status=yes');
document.forms[1].submit()
}

function Csound() {
var FoundErrors = '';
var enterURL   = prompt("请输入背景音乐地址", "http://");
if (!enterURL) {
FoundErrors += "\n" + "您必须要输入有效地址";
}
if (FoundErrors) {
alert("错误!"+FoundErrors);
return;
}
var ToAdd = "[SOUND]"+enterURL+"[/SOUND]";
document.getElementById(editObj).value+=ToAdd;
document.getElementById(editObj).focus();
}

function Cra() {
var FoundErrors = '';
var enterURL   = prompt("请输入real音频文件地址", "http://");
if (!enterURL) {
FoundErrors += "\n" + "您必须输入有效的地址";
}
if (FoundErrors) {
alert("错误!"+FoundErrors);
return;
}
var ToAdd = "[RA]"+enterURL+"[/RA]";
document.getElementById(editObj).value+=ToAdd;
document.getElementById(editObj).focus();
}

function AddUbbCode(code1,code2){
	ClearHtml();
fontbegin=code1;
fontend=code2;
WordAdd();
}